import { getCategoryAPI } from "@/apis/category";
import { onMounted, ref } from "vue";
import { onBeforeRouteUpdate, useRoute } from "vue-router";


export function useCategory(){
  const categoryData = ref({});
  const route = useRoute();
  const getCategory = async (params = route.params) => {
    const res = await getCategoryAPI(params);
    categoryData.value = res.result;
  };
  onMounted(() => {
    getCategory();
  });

  // 给路由使用key属性方式不好，因为我们的目标是只让获取分类的接口每次点击后重新发起请求，而轮播图不需要
  // 可以使用路由的一个方法实现 onBeforeRouteUpdate
  onBeforeRouteUpdate((to) => {
    // console.log("路由变化了", to);
    // 在这里发起获取分类的请求接口
    // 但是存在一个问题，就是路由参数 route.params 滞后问题
    // 解决这个问题可以在调用方法时候传递路由参数
    getCategory(to.params);
  });

  return{
    categoryData
  }
}